if(!window.Modalbox){var Modalbox=new Object()
}Modalbox.Methods={overrideAlert:false,focusableElements:new Array,currFocused:0,initialized:false,active:true,options:{title:"ModalBox Window",overlayClose:true,width:500,height:90,overlayOpacity:0.65,overlayDuration:0.25,slideDownDuration:0,slideUpDuration:0,resizeDuration:0.2,inactiveFade:true,transitions:true,loadingString:"Please wait. Loading...",closeString:"Close window",closeValue:"&times;",params:{},method:"get",autoFocusing:true,aspnet:false},_options:new Object,setOptions:function(A){Object.extend(this.options,A||{})
},_init:function(B){Object.extend(this._options,this.options);
this.setOptions(B);
this.MBoverlay=new Element("div",{id:"MB_overlay",opacity:"0"});
this.MBwindow=new Element("div",{id:"MB_window",style:"display: none"}).update(this.MBframe=new Element("div",{id:"MB_frame"}).update(this.MBheader=new Element("div",{id:"MB_header"}).update(this.MBcaption=new Element("div",{id:"MB_caption"}))));
this.MBclose=new Element("a",{id:"MB_close",title:this.options.closeString,href:"#"}).update("<span>"+this.options.closeValue+"</span>");
this.MBheader.insert({bottom:this.MBclose});
this.MBcontent=new Element("div",{id:"MB_content"}).update(this.MBloading=new Element("div",{id:"MB_loading"}).update(this.options.loadingString));
this.MBframe.insert({bottom:this.MBcontent});
var A=this.options.aspnet?$(document.body).down("form"):$(document.body);
A.insert({top:this.MBwindow});
A.insert({top:this.MBoverlay});
this.initScrollX=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft;
this.initScrollY=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;
this.hideObserver=this._hide.bindAsEventListener(this);
this.kbdObserver=this._kbdHandler.bindAsEventListener(this);
this._initObservers();
this.initialized=true
},show:function(B,A){if(!this.initialized){this._init(A)
}this.content=B;
this.setOptions(A);
if(this.options.title){$(this.MBcaption).update(this.options.title)
}else{$(this.MBheader).hide();
$(this.MBcaption).hide()
}if(this.MBwindow.style.display=="none"){this._appear();
this.event("onShow")
}else{this._update();
this.event("onUpdate")
}},hide:function(A){if(this.initialized){if(A&&typeof A.element!="function"){Object.extend(this.options,A)
}this.event("beforeHide");
if(this.options.transitions){Effect.SlideUp(this.MBwindow,{duration:this.options.slideUpDuration,transition:Effect.Transitions.sinoidal,afterFinish:this._deinit.bind(this)})
}else{$(this.MBwindow).hide();
this._deinit()
}}else{throw ("Modalbox is not initialized.")
}},_hide:function(A){A.stop();
if(A.element().id=="MB_overlay"&&!this.options.overlayClose){return false
}this.hide()
},alert:function(B){var A='<div class="MB_alert"><p>'+B+'</p><input type="button" onclick="Modalbox.hide()" value="OK" /></div>';
Modalbox.show(A,{title:"Alert: "+document.title,width:300})
},_appear:function(){if(Prototype.Browser.IE&&!navigator.appVersion.match(/\b7.0\b/)){window.scrollTo(0,0);
this._prepareIE("100%","hidden")
}this._setWidth();
this._setPosition();
if(this.options.transitions){$(this.MBoverlay).setStyle({opacity:0});
new Effect.Fade(this.MBoverlay,{from:0,to:this.options.overlayOpacity,duration:this.options.overlayDuration,afterFinish:function(){new Effect.SlideDown(this.MBwindow,{duration:this.options.slideDownDuration,transition:Effect.Transitions.sinoidal,afterFinish:function(){this._setPosition();
this.loadContent()
}.bind(this)})
}.bind(this)})
}else{$(this.MBoverlay).setStyle({opacity:this.options.overlayOpacity});
$(this.MBwindow).show();
this._setPosition();
this.loadContent()
}this._setWidthAndPosition=this._setWidthAndPosition.bindAsEventListener(this);
Event.observe(window,"resize",this._setWidthAndPosition)
},resize:function(G,H,C){var F=$(this.MBwindow).getHeight();
var D=$(this.MBwindow).getWidth();
var E=$(this.MBheader).getHeight();
var B=$(this.MBcontent).getHeight();
var A=((F-E+H)<B)?(B+E-F):H;
if(C){this.setOptions(C)
}if(this.options.transitions){new Effect.ScaleBy(this.MBwindow,G,A,{duration:this.options.resizeDuration,afterFinish:function(){this.event("_afterResize");
this.event("afterResize")
}.bind(this)})
}else{this.MBwindow.setStyle({width:D+G+"px",height:F+A+"px"});
setTimeout(function(){this.event("_afterResize");
this.event("afterResize")
}.bind(this),1)
}},resizeToContent:function(A){var B=this.options.height-this.MBwindow.offsetHeight;
if(B!=0){if(A){this.setOptions(A)
}Modalbox.resize(0,B)
}},resizeToInclude:function(C,B){var D=$(C);
var A=D.getHeight()+parseInt(D.getStyle("margin-top"))+parseInt(D.getStyle("margin-bottom"))+parseInt(D.getStyle("border-top-width"))+parseInt(D.getStyle("border-bottom-width"));
if(A>0){if(B){this.setOptions(B)
}Modalbox.resize(0,A)
}},_update:function(){$(this.MBcontent).update("");
this.MBcontent.appendChild(this.MBloading);
$(this.MBloading).update(this.options.loadingString);
this.currentDims=[this.MBwindow.offsetWidth,this.MBwindow.offsetHeight];
Modalbox.resize((this.options.width-this.currentDims[0]),(this.options.height-this.currentDims[1]),{_afterResize:this._loadAfterResize.bind(this)})
},loadContent:function(){if(this.event("beforeLoad")!=false){if(typeof this.content=="string"){var htmlRegExp=new RegExp(/<\/?[^>]+>/gi);
if(htmlRegExp.test(this.content)){this._insertContent(this.content.stripScripts());
this._putContent(function(){this.content.extractScripts().map(function(script){return eval(script.replace("<!--","").replace("// -->",""))
}.bind(window))
}.bind(this))
}else{new Ajax.Request(this.content,{method:this.options.method.toLowerCase(),parameters:this.options.params,onSuccess:function(transport){var response=new String(transport.responseText);
this._insertContent(transport.responseText.stripScripts());
this._putContent(function(){response.extractScripts().map(function(script){return eval(script.replace("<!--","").replace("// -->",""))
}.bind(window))
})
}.bind(this),onException:function(instance,exception){Modalbox.hide();
throw ("Modalbox Loading Error: "+exception)
}})
}}else{if(typeof this.content=="object"){this._insertContent(this.content);
this._putContent()
}else{Modalbox.hide();
throw ("Modalbox Parameters Error: Please specify correct URL or HTML element (plain HTML or object)")
}}}},_insertContent:function(B){$(this.MBcontent).hide().update("");
if(typeof B=="string"){setTimeout(function(){this.MBcontent.update(B)
}.bind(this),1)
}else{if(typeof B=="object"){var A=B.cloneNode(true);
if(B.id){B.id="MB_"+B.id
}$(B).select("*[id]").each(function(C){C.id="MB_"+C.id
});
this.MBcontent.appendChild(A);
this.MBcontent.down().show();
if(Prototype.Browser.IE){$$("#MB_content select").invoke("setStyle",{visibility:""})
}}}},_putContent:function(A){if(this.options.height==this._options.height){setTimeout(function(){Modalbox.resize(0,$(this.MBcontent).getHeight()-$(this.MBwindow).getHeight()+$(this.MBheader).getHeight(),{afterResize:function(){this.MBcontent.show().makePositioned();
this.focusableElements=this._findFocusableElements();
this._setFocus();
setTimeout(function(){if(A!=undefined){A()
}this.event("afterLoad")
}.bind(this),1)
}.bind(this)})
}.bind(this),1)
}else{this._setWidth();
this.MBcontent.setStyle({overflow:"auto",height:$(this.MBwindow).getHeight()-$(this.MBheader).getHeight()-13+"px"});
this.MBcontent.show();
this.focusableElements=this._findFocusableElements();
this._setFocus();
setTimeout(function(){if(A!=undefined){A()
}this.event("afterLoad")
}.bind(this),1)
}},activate:function(A){this.setOptions(A);
this.active=true;
$(this.MBclose).observe("click",this.hideObserver);
if(this.options.overlayClose){$(this.MBoverlay).observe("click",this.hideObserver)
}$(this.MBclose).show();
if(this.options.transitions&&this.options.inactiveFade){new Effect.Appear(this.MBwindow,{duration:this.options.slideUpDuration})
}},deactivate:function(A){this.setOptions(A);
this.active=false;
$(this.MBclose).stopObserving("click",this.hideObserver);
if(this.options.overlayClose){$(this.MBoverlay).stopObserving("click",this.hideObserver)
}$(this.MBclose).hide();
if(this.options.transitions&&this.options.inactiveFade){new Effect.Fade(this.MBwindow,{duration:this.options.slideUpDuration,to:0.75})
}},_initObservers:function(){$(this.MBclose).observe("click",this.hideObserver);
if(this.options.overlayClose){$(this.MBoverlay).observe("click",this.hideObserver)
}if(Prototype.Browser.IE){Event.observe(document,"keydown",this.kbdObserver)
}else{Event.observe(document,"keypress",this.kbdObserver)
}},_removeObservers:function(){$(this.MBclose).stopObserving("click",this.hideObserver);
if(this.options.overlayClose){$(this.MBoverlay).stopObserving("click",this.hideObserver)
}if(Prototype.Browser.IE){Event.stopObserving(document,"keydown",this.kbdObserver)
}else{Event.stopObserving(document,"keypress",this.kbdObserver)
}},_loadAfterResize:function(){this._setWidth();
this._setPosition();
this.loadContent()
},_setFocus:function(){if(this.focusableElements.length>0&&this.options.autoFocusing==true){var A=this.focusableElements.find(function(B){return B.tabIndex==1
})||this.focusableElements.first();
this.currFocused=this.focusableElements.toArray().indexOf(A);
A.focus()
}else{if($(this.MBclose).visible()){$(this.MBclose).focus()
}}},_findFocusableElements:function(){this.MBcontent.select("input:not([type~=hidden]), select, textarea, button, a[href]").invoke("addClassName","MB_focusable");
return this.MBcontent.select(".MB_focusable")
},_kbdHandler:function(B){var A=B.element();
switch(B.keyCode){case Event.KEY_TAB:B.stop();
if(A!=this.focusableElements[this.currFocused]){this.currFocused=this.focusableElements.toArray().indexOf(A)
}if(!B.shiftKey){if(this.currFocused==this.focusableElements.length-1){this.focusableElements.first().focus();
this.currFocused=0
}else{this.currFocused++;
this.focusableElements[this.currFocused].focus()
}}else{if(this.currFocused==0){this.focusableElements.last().focus();
this.currFocused=this.focusableElements.length-1
}else{this.currFocused--;
this.focusableElements[this.currFocused].focus()
}}break;
case Event.KEY_ESC:if(this.active){this._hide(B)
}break;
case 32:this._preventScroll(B);
break;
case 0:if(B.which==32){this._preventScroll(B)
}break;
case Event.KEY_UP:case Event.KEY_DOWN:case Event.KEY_PAGEDOWN:case Event.KEY_PAGEUP:case Event.KEY_HOME:case Event.KEY_END:if(Prototype.Browser.WebKit&&!["textarea","select"].include(A.tagName.toLowerCase())){B.stop()
}else{if((A.tagName.toLowerCase()=="input"&&["submit","button"].include(A.type))||(A.tagName.toLowerCase()=="a")){B.stop()
}}break
}},_preventScroll:function(A){if(!["input","textarea","select","button"].include(A.element().tagName.toLowerCase())){A.stop()
}},_deinit:function(){this._removeObservers();
Event.stopObserving(window,"resize",this._setWidthAndPosition);
if(this.options.transitions){Effect.toggle(this.MBoverlay,"appear",{duration:this.options.overlayDuration,afterFinish:this._removeElements.bind(this)})
}else{this.MBoverlay.hide();
this._removeElements()
}$(this.MBcontent).setStyle({overflow:"",height:""})
},_removeElements:function(){$(this.MBoverlay).remove();
$(this.MBwindow).remove();
if(Prototype.Browser.IE&&!navigator.appVersion.match(/\b7.0\b/)){this._prepareIE("","");
window.scrollTo(this.initScrollX,this.initScrollY)
}if(typeof this.content=="object"){if(this.content.id&&this.content.id.match(/MB_/)){this.content.id=this.content.id.replace(/MB_/,"")
}this.content.select("*[id]").each(function(A){A.id=A.id.replace(/MB_/,"")
})
}this.initialized=false;
this.event("afterHide");
this.setOptions(this._options)
},_setWidth:function(){$(this.MBwindow).setStyle({width:this.options.width+"px",height:this.options.height+"px"})
},_setPosition:function(){$(this.MBwindow).setStyle({left:Math.round((Element.getWidth(document.body)-Element.getWidth(this.MBwindow))/2)+"px"})
},_setWidthAndPosition:function(){$(this.MBwindow).setStyle({width:this.options.width+"px"});
this._setPosition()
},_getScrollTop:function(){var A;
if(document.documentElement&&document.documentElement.scrollTop){A=document.documentElement.scrollTop
}else{if(document.body){A=document.body.scrollTop
}}return A
},_prepareIE:function(A,B){$$("html, body").invoke("setStyle",{width:A,height:A,overflow:B});
$$("select").invoke("setStyle",{visibility:B})
},event:function(A){if(this.options[A]){var B=this.options[A]();
this.options[A]=null;
if(B!=undefined){return B
}else{return true
}}return true
}};
Object.extend(Modalbox,Modalbox.Methods);
if(Modalbox.overrideAlert){window.alert=Modalbox.alert
}Effect.ScaleBy=Class.create();
Object.extend(Object.extend(Effect.ScaleBy.prototype,Effect.Base.prototype),{initialize:function(B,C,D,A){this.element=$(B);
var A=Object.extend({scaleFromTop:true,scaleMode:"box",scaleByWidth:C,scaleByHeight:D},arguments[3]||{});
this.start(A)
},setup:function(){this.elementPositioning=this.element.getStyle("position");
this.originalTop=this.element.offsetTop;
this.originalLeft=this.element.offsetLeft;
this.dims=null;
if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth]
}if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth]
}if(!this.dims){this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]
}this.deltaY=this.options.scaleByHeight;
this.deltaX=this.options.scaleByWidth
},update:function(A){var C=this.dims[0]+(this.deltaY*A);
var B=this.dims[1]+(this.deltaX*A);
C=(C>0)?C:0;
B=(B>0)?B:0;
this.setDimensions(C,B)
},setDimensions:function(A,D){var E={};
E.width=D+"px";
E.height=A+"px";
var C=Math.round((A-this.dims[0])/2);
var B=Math.round((D-this.dims[1])/2);
if(this.elementPositioning=="absolute"||this.elementPositioning=="fixed"){if(!this.options.scaleFromTop){E.top=this.originalTop-C+"px"
}E.left=this.originalLeft-B+"px"
}else{if(!this.options.scaleFromTop){E.top=-C+"px"
}E.left=-B+"px"
}this.element.setStyle(E)
}});